অ্যাক্সেস মডিফায়ার হলো প্রোগ্রামিংয়ে ব্যবহৃত এমন কিছু কীওয়ার্ড যা ক্লাসের ভেরিয়েবল এবং মেথডের অ্যাক্সেসibilটিকে নিয়ন্ত্রণ করে। সি++ এ তিন ধরনের অ্যাক্সেস মডিফায়ার রয়েছে: private, public, এবং protected। এগুলি ক্লাসের সদস্যদের অ্যাক্সেস সীমা নির্ধারণ করে এবং প্রোগ্রামে ডেটা সুরক্ষায় গুরুত্বপূর্ণ ভূমিকা পালন করে।
private
অ্যাক্সেস মডিফায়ারprivate অ্যাক্সেস মডিফায়ার দ্বারা চিহ্নিত কোনো মেম্বার ক্লাসের বাইরে থেকে সরাসরি অ্যাক্সেস করা যায় না। শুধুমাত্র ক্লাসের ভেতর থেকে এবং ক্লাসের মেথডের মাধ্যমেই এই ধরনের মেম্বারগুলো অ্যাক্সেস করা সম্ভব। এটি ডেটাকে সুরক্ষিত রাখতে সাহায্য করে।
উদাহরণ:
#include <iostream>
using namespace std;
class Car {
private:
int year; // private মেম্বার
public:
void setYear(int y) { // setter মেথড
year = y;
}
int getYear() { // getter মেথড
return year;
}
};
int main() {
Car myCar;
myCar.setYear(2020); // setYear এর মাধ্যমে year সেট করা হচ্ছে
cout << "Year: " << myCar.getYear() << endl; // getYear এর মাধ্যমে year পাওয়া যাচ্ছে
return 0;
}
ব্যাখ্যা:
year
ভেরিয়েবলটি private
, তাই সরাসরি myCar.year
দ্বারা সেটি অ্যাক্সেস করা যাবে না।setYear
এবং getYear
মেথডগুলো ব্যবহার করে year
এর মান সেট ও পড়া হচ্ছে।public
অ্যাক্সেস মডিফায়ারpublic অ্যাক্সেস মডিফায়ার দ্বারা চিহ্নিত মেম্বারগুলো ক্লাসের বাইরে থেকে সরাসরি অ্যাক্সেসযোগ্য। এগুলি ক্লাসের যে কোনো অবজেক্ট থেকে অ্যাক্সেস করা যায়।
উদাহরণ:
#include <iostream>
using namespace std;
class Car {
public:
int year; // public মেম্বার
};
int main() {
Car myCar;
myCar.year = 2020; // year সরাসরি অ্যাক্সেস ও সেট করা
cout << "Year: " << myCar.year << endl;
return 0;
}
ব্যাখ্যা:
year
ভেরিয়েবলটি public
, তাই সরাসরি myCar.year
দ্বারা সেটি অ্যাক্সেস ও সেট করা সম্ভব।public
মেম্বার হিসেবে year
সরাসরি ক্লাসের বাইরেও ব্যবহার করা যায়।protected
অ্যাক্সেস মডিফায়ারprotected অ্যাক্সেস মডিফায়ার দ্বারা চিহ্নিত মেম্বারগুলো শুধুমাত্র ক্লাসের ভেতরে এবং সেই ক্লাস থেকে ইনহেরিট করা ক্লাসে অ্যাক্সেসযোগ্য। কিন্তু, ক্লাসের বাইরে থেকে সরাসরি অ্যাক্সেস করা যায় না। এটি ইনহেরিটেন্সের ক্ষেত্রে ডেটা সুরক্ষিত রাখতে সহায়ক।
উদাহরণ:
#include <iostream>
using namespace std;
class Vehicle {
protected:
string brand; // protected মেম্বার
public:
void setBrand(string b) {
brand = b;
}
};
class Car : public Vehicle {
public:
void display() {
cout << "Brand: " << brand << endl; // protected মেম্বার subclass এ অ্যাক্সেসযোগ্য
}
};
int main() {
Car myCar;
myCar.setBrand("Toyota");
myCar.display(); // Displaying the brand
return 0;
}
ব্যাখ্যা:
brand
মেম্বারটি protected
, যা Vehicle
ক্লাসের Car
ইনহেরিটেড ক্লাস থেকে অ্যাক্সেসযোগ্য।setBrand
মেথডটি ব্যবহার করে brand
এর মান সেট করা হয়েছে, যা display
মেথডে অ্যাক্সেসযোগ্য।অ্যাক্সেস মডিফায়ার | ক্লাসের ভিতরে | ইনহেরিটেড ক্লাসে | ক্লাসের বাইরে |
---|---|---|---|
private | ✔️ | ❌ | ❌ |
protected | ✔️ | ✔️ | ❌ |
public | ✔️ | ✔️ | ✔️ |
অ্যাক্সেস মডিফায়ার সি++ এ ডেটা এবং মেথডের অ্যাক্সেসibilটি নিয়ন্ত্রণের জন্য ব্যবহৃত হয়। private
মেম্বার শুধুমাত্র ক্লাসের ভিতরে অ্যাক্সেসযোগ্য, protected
মেম্বার ক্লাসের ভিতরে এবং ইনহেরিটেড ক্লাসে অ্যাক্সেসযোগ্য, এবং public
মেম্বার ক্লাসের বাইরেও অ্যাক্সেসযোগ্য। অ্যাক্সেস মডিফায়ার প্রোগ্রামের ডেটা সুরক্ষা এবং সঠিক ব্যবস্থাপনার জন্য অত্যন্ত গুরুত্বপূর্ণ।
common.read_more